The invention relates generally to Programmable Logic Controller (PLC) programming. More specifically, the invention relates to systems and methods that allow function blocks used in PLC programs to be copied to other PLCs during run-time in a distributed control system.
In today's automation environment, there is an increasing need for flexible, agile and reconfigurable control systems. Object-oriented distributed systems and agent-oriented software are widely adopted to increase availability, performance and acceptance of automation control systems.
At the low level of real-time Distributed Control Systems (DCSs), the objects and agents are usually hosted by PLCs and written using International Electrotechnical Commission (IEC) 61131-3 programming languages encapsulated in function blocks. Function blocks are the basic units of PLC programs and are well adopted by different PLC vendors.
With a functional block, a whole manufacturing/operation process can be encapsulated with an object wrapper. The major benefit of using function blocks is reduced engineering effort due to their reusability.
Traditionally, function block-based objects and agents are static. It is not necessary for the objects and agents to be mobile since their functionality is tied to the control of hardware, e.g., the hard-wired PLC control modules and input/output cards. However, with wireless technology development, the liaison of function blocks with hardware is loosened since more and more wireless PLC modules are available for real-time control of valves, pumps, and robots. If a function block based agent migrates to another host, it will reestablish the communication with the valves, pumps, robots, etc.
The second hindrance to the development of a PLC based mobile agent system is that current PLCs do not support mobile codes. Most PLC programs have to be configured and downloaded to the PLC during an engineering phase with vendor specific engineering tools and the program usually remains that way after deployment.
Communication between PLCs is usually limited to transferring data blocks excluding function blocks. With such constraints, if a PLC is required to cope with different control tasks, all of the function blocks supporting the variety of tasks have to be downloaded to it during the engineering phase. This significantly constrains the flexibility and scalability of PLC-based real-time DCSs.
While current PLCs can only obtain programs from their respective engineering tools, PLCs that could support mobile function blocks may obtain function blocks dynamically, from their peer PLCs across a DCS during run-time when the engineering tools are not present.
What is needed is a PLC method and architecture that supports function block mobility between different PLCs in mobile object/mobile agent based DCSs during run-time.